1. Field of the Invention
The present invention relates to load balancing. More particularly, the present invention relates to load balancing service requests between at least two service component instances associated with a network access point.
2. The Background
The proliferation of fixed price unlimited network access is one manifestation of the increasing demand for inexpensive network access to a resource rich communications system, such as the Internet. To keep their network access operations profitable, if not soluble, network access providers, such as ISPs (xe2x80x9cInternet Service Providersxe2x80x9d) must balance the needs of their subscribers with the cost of providing network access capacity that is sufficient to support those needs. However, sizing network access capacity is difficult to do because the demand for network access may vary continuously.
For example, FIG. 1 is a block diagram of one possible implementation of an access point that has a network access request capacity dependent on the service components used by the access point. Access point 10 is shown in relation to a communications system 12 that uses a communications backbone 14, such as the Internet. Access point 10 includes a client 16 and the necessary network connections to service components that provide the services required to properly process a network access request received by client 16 from a host 18.
When host 18 sends a network access request to access point 10, client 16 receives the request and processes the request according to the access methodology used by host 18. For example, if host 18 relies on a dial-up methodology, client 16 responds to the network access request by requesting, among other things, the following services from its service components. First, client 16 will send a service request to a service component that provides authentication and authorization services, such as an AAA (Authentication, Authorization, and Accounting) server 20. AAA server 20 will respond by determining whether the network access request received is authorized and respond with a reply, which indicates whether the request is authorized or unauthorized. Second, if client 16 receives a reply indicating that the network access request is authorized, client 16 then sends a request for an address to another service component, such as a DHCP (dynamic host configuration protocol) server 22. Those of ordinary skill in the art will recognize that the address provided by a DHCP server 22 will be in the format of an IP address. Upon receiving the address, client 16 sends a reply packet having the address to host 18, enabling host 18 to proceed within the log-on process using the address contained within the packet.
From the above example, providing the necessary processing required to support a network access request under a particular access methodology depends on the performance of the service components used. Thus, one solution is to size service components, i.e., build or provide service components that have high transaction rates, so as to maintain network access request processing levels at or above the level required by hosts seeking network access even during peak times. This approach is expensive because it provides a static solution to a problem that is dynamic in nature. By preparing for the worst case scenario, the solution builds in inefficiencies during off-peak periods and thus, results in an xe2x80x9cover-builtxe2x80x9d and hence, more expensive than necessary network access point.
Building network access points which are less over-built, such as network access points that have sufficient resources for the average demand over a given period, may also be implemented but such an approach does not adequately provide for peak periods (such as the situation described above) or for periods which require less than the average number of resources.
Accordingly, a need exists for an apparatus which may be used in conjunction with components within a network access point to load balance the processing of network access requests using the services of at least two instances of a particular service component type, such as an AAA server.
Further, a need exists for an apparatus that may be used in conjunction with components within a network access point to load balance the processing of network access requests according to the measured performance of the instances used.
Further, a need exists for an apparatus that may be used in conjunction with components within a network access point to load balance the processing of network access requests between or among instances of a particular service component type without the need for receiving feedback from each instance used.
Furthermore, a need exists for an apparatus which may be used in conjunction with components within a network access point to load balance the processing of network access requests between or among instances while detecting inoperative and/or restarted instances.
Service requests, which are used to properly process a network access request received from a client, are processed by routing the service requests between at least two service component instances according to a load balancing algorithm. Load balancing includes: calculating a first ticket amount and a second ticket amount; assigning the first ticket amount to a first instance and the second ticket amount to a second instance; using a selection scheme to select an instance having a ticket amount greater than a threshold amount to process a service request; decrementing the ticket amount corresponding to the instance selected; and scheduling the instance selected to receive a service request.
The present invention may further include distinguishing between operable and inoperable instances during load balancing, providing ticket amounts that are not based on performance ratings to inoperable instances, and providing ticket amounts that are based on performance ratings to operable instances. For example, inoperable instances may each receive a ticket amount that is one increment above the threshold amount and operable instances may each receive a ticket amount that is based on the performance rating of each operable instance.